/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package network.messages;

import org.json.*;

/**
 * Mensagem enviada quando o jogador muda de estado (andando, parado)
 * @author Victor
 */
public class MensagemChangeEstado extends Mensagem
{
	private final String ID_ATTR = "from";
	private final String ESTADO_MOVIMENTACAO_ATTR = "estadoMovimentacao";
	private final String ESTADO_ANGULACAO_ATTR = "estadoAngulacao";
        private final String VELOCIDADE_Y_ATTR = "velocidadeY";

	private int _id;
	private int _estadoMovimentacao;
	private int _estadoAngulacao;
        private double _velocidadeY;

	public int GetId()
	{
		return _id;
	}

	public void SetId(int id)
	{
		_id = id;
	}

	public int GetEstadoMovimentacao()
	{
		return _estadoMovimentacao;
	}

	public void SetEstadoMovimentacao(int estadoMovimentacao)
	{
		_estadoMovimentacao = estadoMovimentacao;
	}

	public int GetEstadoAngulacao()
	{
		return _estadoAngulacao;
	}

	public void SetEstadoAngulacao(int estadoAngulacao)
	{
		_estadoAngulacao = estadoAngulacao;
	}
        
        public double GetVelocidadeY()
        {
                return _velocidadeY;
        }
        
        public void SetVelocidadeY(double velocidade)
        {
                _velocidadeY = velocidade;
        }

	@Override
	public void Construct(JSONObject jsonObject)
	{
		try
		{
			_id = jsonObject.getInt(ID_ATTR);
			_estadoMovimentacao = jsonObject.getInt(ESTADO_MOVIMENTACAO_ATTR);
			_estadoAngulacao = jsonObject.getInt(ESTADO_ANGULACAO_ATTR);
                        _velocidadeY = jsonObject.getDouble(VELOCIDADE_Y_ATTR);
		}
		catch (JSONException err)
		{
			err.printStackTrace();
		}
	}

	@Override
	public JSONObject GetJSONObject()
	{
		JSONObject jsonObject = new JSONObject();

		try
		{
			jsonObject.put(MensagemFactory.KIND_ATTR, MensagemFactory.KIND_CHANGE_ESTADO);
			jsonObject.put(ID_ATTR, _id);
			jsonObject.put(ESTADO_MOVIMENTACAO_ATTR, _estadoMovimentacao);
			jsonObject.put(ESTADO_ANGULACAO_ATTR, _estadoAngulacao);
                        jsonObject.put(VELOCIDADE_Y_ATTR, _velocidadeY);
		}
		catch (JSONException err)
		{
			err.printStackTrace();
		}

		return jsonObject;
	}
}
